pandas: DataFrame
immutable
生成
属性
行名のインデックス(ラベル)を取得または設定
code:python
print(df.index) # 出力: RangeIndex(start=0, stop=3, step=1)
列名を取得または設定
code:python
print(df.shape) # 出力: (3, 2)
各列のデータ型を取得
code:python
print(df.dtypes) # 出力:
# A int64
# B int64
# dtype: object
操作
列の参照
列のラベルを指定して列を取得
code:python
# 0 1
# 1 2
# 2 3
# Name: A, dtype: int64
行の参照
行をインデックス番号で指定して取得
code:python
# A 1
# B 4
# Name: 0, dtype: int64
複数行・複数列の参照
スライスやリストで複数行・列を指定して取得
code:python
# A B
# 0 1 4
# 1 2 5
条件に基づくフィルタリング
条件を満たす行を取得
code:python
print(df[df'A' > 1]) # 出力: # A B
# 1 2 5
# 2 3 6
新しい列の追加
計算結果やデータを用いて新しい列を追加
code:python
print(df) # 出力:
# A B C
# 0 1 4 5
# 1 2 5 7
# 2 3 6 9
列の削除
色々ある
code:py
# col2とcol3を削除
カラム削除時に元のDataFrameを保持するか、直接変更するかを選べる(inplace=True)。
複数カラムをまとめて削除したいときにも使いやすい
code:py
# col2を削除
# または
条件に基づいてカラムを削除できる。特定のカラムを除外する操作が可能。
条件付きでカラムを削除したいときや、特殊なフィルタリングを行いたい場合に有効。
code:py
# col2を削除して、そのデータを取得
col2_data = df.pop('col2')
カラムを削除すると同時に、そのカラムのデータを取得する
del
code:py
Pythonの標準的な方法
破壊的
転置
code:pu
df.T
すべての列が同じデータ型ではない場合に転置を使うと、列のデータ型は無視される
転置をして、更に転置をして戻すと、元の型情報が失われる
順番を変えられる
色々オプションが有る
カラム名の変更
code:py
df = df.rename(columns={'old_name1': 'new_name1', 'old_name2': 'new_name2'})
演算
要素ごとの演算
各要素に対してスカラー値の演算を行う
code:python
print(df * 2) # 出力:
# A B C
# 0 2 8 10
# 1 4 10 14
# 2 6 12 18
列ごとの演算
各列同士での演算を行う
code:python
print(df) # 出力:
# A B C D
# 0 1 4 5 4
# 1 2 5 7 10
# 2 3 6 9 18
結合・操作
code:python
df = pd.DataFrame({
})
df'C' = df'A'.apply(lambda x: x ** 2) print(df) # 出力:
# A B C
# 0 1 10 1
# 1 2 20 4
# 2 3 30 9
applyは柔軟な操作を行う際に便利な関数
保存・読み込み
`text
code:python
df.to_csv('output.csv', index=False)
`
- index=Falseで行ラベル(インデックス)を保存しないように指定
`text
code:python
df.to_excel('output.xlsx', index=False)
`
- Excel形式での保存は、ビジネス用途でよく使用される
`text
code:python
df = pd.read_excel('input.xlsx')
print(df)
`
- read_excelはExcelファイルのデータを効率的に取り込むために使用される
`text
code:python
df.to_json('output.json')
`
- JSON形式での保存は、Webアプリケーションとのデータ連携などに使用される
`text
code:python
df = pd.read_json('input.json')
print(df)
`